<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Force merge API | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'indices-forcemerge.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/indices-forcemerge.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/indices-forcemerge.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/indices-forcemerge.html" rel="nofollow" target="_blank">../en/indices-forcemerge.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="rest-apis.html">REST APIs</a></span>
»
<span class="breadcrumb-link"><a href="indices.html">Index APIs</a></span>
»
<span class="breadcrumb-node">Force merge API</span>
</div>
<div class="navheader">
<span class="prev">
<a href="indices-flush.html">« Flush API</a>
</span>
<span class="next">
<a href="freeze-index-api.html">Freeze index API »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="indices-forcemerge"></a>Force merge API<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h2>
</div></div></div>

<p>Forces a <a class="xref" href="index-modules-merge.html" title="Merge">merge</a> on the shards of one or more indices.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST /twitter/_forcemerge</pre>
</div>
<div class="console_widget" data-snippet="snippets/1634.console"></div>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="forcemerge-api-request"></a>Request<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h3>
</div></div></div>
<p><code class="literal">POST /&lt;index&gt;/_forcemerge</code></p>
<p><code class="literal">POST /_forcemerge</code></p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="forcemerge-api-desc"></a>Description<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h3>
</div></div></div>
<p>Use the force merge API to force a <a class="xref" href="index-modules-merge.html" title="Merge">merge</a> on the
shards of one or more indices. Merging reduces the number of segments in each
shard by merging some of them together, and also frees up the space used by
deleted documents. Merging normally happens automatically, but sometimes it is
useful to trigger a merge manually.</p>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p><span class="strong strong"><strong>Force merge should only be called against an index after you have
finished writing to it.</strong></span> Force merge can cause very large (&gt;5GB) segments to
be produced, and if you continue to write to such an index then the automatic
merge policy will never consider these segments for future merges until they
mostly consist of deleted documents. This can cause very large segments to
remain in the index which can result in increased disk usage and worse search
performance.</p>
</div>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="forcemerge-blocks"></a>Blocks during a force merge<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h4>
</div></div></div>
<p>Calls to this API block until the merge is complete. If the client connection
is lost before completion then the force merge process will continue in the
background. Any new requests to force merge the same indices will also block
until the ongoing force merge is complete.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="forcemerge-multi-index"></a>Force merging multiple indices<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h4>
</div></div></div>
<p>The force merge API can be applied to more than one index with a single call, or
even on <code class="literal">_all</code> the indices. Multi index operations are executed one shard at a
time per node. Force merge makes the storage for the shard being merged
temporarily increase, up to double its size in case <code class="literal">max_num_segments</code> parameter
is set to <code class="literal">1</code>, as all segments need to be rewritten into a new one.</p>
</div>

</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="forcemerge-api-path-params"></a>Path parameters<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">&lt;index&gt;</code>
</span>
</dt>
<dd>
<p>
(Optional, string) Comma-separated list or wildcard expression of index names
used to limit the request.
</p>
<p>To force merge all indices in the cluster,
omit this parameter
or use a value of <code class="literal">_all</code> or <code class="literal">*</code>.</p>
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="forcemerge-api-query-params"></a>Query parameters<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">allow_no_indices</code>
</span>
</dt>
<dd>
<p>
(Optional, boolean) If <code class="literal">true</code>,
the request does <span class="strong strong"><strong>not</strong></span> return an error
if a wildcard expression
or <code class="literal">_all</code> value retrieves only missing or closed indices.
</p>
<p>This parameter also applies to <a class="xref" href="indices-aliases.html" title="Update index alias API">index aliases</a>
that point to a missing or closed index.</p>
<p>Defaults to <code class="literal">true</code>.</p>
</dd>
<dt>
<span class="term">
<code class="literal">expand_wildcards</code>
</span>
</dt>
<dd>
<p>(Optional, string) Controls what kind of indices that wildcard expressions can
expand to. Multiple values are accepted when separated by a comma, as in
<code class="literal">open,hidden</code>. Valid values are:</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">all</code>
</span>
</dt>
<dd>
Expand to open and closed indices, including <a class="xref" href="index-modules.html#index-hidden">hidden indices</a>.
</dd>
<dt>
<span class="term">
<code class="literal">open</code>
</span>
</dt>
<dd>
Expand only to open indices.
</dd>
<dt>
<span class="term">
<code class="literal">closed</code>
</span>
</dt>
<dd>
Expand only to closed indices.
</dd>
<dt>
<span class="term">
<code class="literal">hidden</code>
</span>
</dt>
<dd>
Expansion of wildcards will include <a class="xref" href="index-modules.html#index-hidden">hidden indices</a>.
Must be combined with <code class="literal">open</code>, <code class="literal">closed</code>, or both.
</dd>
<dt>
<span class="term">
<code class="literal">none</code>
</span>
</dt>
<dd>
Wildcard expressions are not accepted.
</dd>
</dl>
</div>
<p>Defaults to <code class="literal">open</code>.</p>
</dd>
<dt>
<span class="term">
<code class="literal">flush</code>
</span>
</dt>
<dd>
(Optional, boolean)
If <code class="literal">true</code>,
Elasticsearch performs a <a class="xref" href="indices-flush.html" title="Flush API">flush</a> on the indices
after the force merge.
Defaults to <code class="literal">true</code>.
</dd>
<dt>
<span class="term">
<code class="literal">ignore_unavailable</code>
</span>
</dt>
<dd>
(Optional, boolean) If <code class="literal">true</code>, missing or closed indices are not included in the
response. Defaults to <code class="literal">false</code>.
</dd>
<dt>
<span class="term">
<code class="literal">max_num_segments</code>
</span>
</dt>
<dd>
<p>(Optional, integer)
The number of segments to merge to.
To fully merge the index,
set it to <code class="literal">1</code>.</p>
<p>Defaults to checking if a merge needs to execute.
If so, executes it.</p>
</dd>
<dt>
<span class="term">
<code class="literal">only_expunge_deletes</code>
</span>
</dt>
<dd>
<p>(Optional, boolean)
If <code class="literal">true</code>,
only expunge segments containing document deletions.
Defaults to <code class="literal">false</code>.</p>
<p>In Lucene,
a document is not deleted from a segment;
just marked as deleted.
During a merge,
a new segment is created
that does not contain those document deletions.</p>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>This parameter does <span class="strong strong"><strong>not</strong></span> override the
<code class="literal">index.merge.policy.expunge_deletes_allowed</code> setting.</p>
</div>
</div>
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="forcemerge-api-example"></a>Examples<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="forcemerge-api-specific-ex"></a>Force merge a specific index<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h4>
</div></div></div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST /twitter/_forcemerge</pre>
</div>
<div class="console_widget" data-snippet="snippets/1635.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="forcemerge-api-multiple-ex"></a>Force merge several indices<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h4>
</div></div></div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST /kimchy,elasticsearch/_forcemerge</pre>
</div>
<div class="console_widget" data-snippet="snippets/1636.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="forcemerge-api-all-ex"></a>Force merge all indices<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h4>
</div></div></div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST /_forcemerge</pre>
</div>
<div class="console_widget" data-snippet="snippets/1637.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="forcemerge-api-time-based-index-ex"></a>Time-based indices<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/indices/forcemerge.asciidoc">edit</a>
</h4>
</div></div></div>
<p>Force-merging is useful for time-based indices,
particularly when using <a class="xref" href="indices-rollover-index.html" title="Rollover index API">rollover</a>.
In these cases,
each index only receives indexing traffic for a certain period of time.
Once an index receive no more writes,
its shards can be force-merged to a single segment.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST /logs-000001/_forcemerge?max_num_segments=1</pre>
</div>
<div class="console_widget" data-snippet="snippets/1638.console"></div>
<p>This can be a good idea because single-segment shards can sometimes use simpler
and more efficient data structures to perform searches.</p>
</div>

</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="indices-flush.html">« Flush API</a>
</span>
<span class="next">
<a href="freeze-index-api.html">Freeze index API »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>